#ifndef _CHECKBOX_H
#define _CHECKBOX_H

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		11/03/2014												 //
//	Purpose:	A toggle state checkbox									 //
//																		 //
///////////////////////////////////////////////////////////////////////////

#include "UiElement.h"
#include "..\..\..\..\EdgeGameCore\Delegate.h"

typedef void(*checkChanged_event_handler)(void**);

class Checkbox : public UiElement
{
	bool checked = false;

	Vector2 size;

public:
	Checkbox(void);
	virtual ~Checkbox(void);

	virtual void Draw(void) override;

	bool getChecked(void) const { return checked; }

	void setChecked(bool value) { checked = value; }

	Vector2 getSize(void) const { return size; }

	void setSize(Vector2 value) { size = value; }

	// event raised when the checked value changes
	Delegate<checkChanged_event_handler> CheckChanged;
};

#endif